name: framework
version: true
title: Spring Framework
nav:
  - modules/ROOT/nav.adoc
ext:
  collector:
    run:
      command: gradlew -q -PbuildSrc.skipTests=true "-Dorg.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError" :framework-docs:generateAntoraResources
      local: true
    scan:
      dir: ./build/generated-antora-resources

asciidoc:
  attributes:
    attribute-missing: 'warn'
    # FIXME: the copyright is not removed
    # FIXME: The package is not renamed
    chomp: 'all'
    fold: 'all'
    table-stripes: 'odd'
    include-java: 'example$docs-src/main/java/org/springframework/docs'
    include-kotlin: 'example$docs-src/main/kotlin/org/springframework/docs'
    include-xml: 'example$docs-src/main/resources/org/springframework/docs'
    spring-site: 'https://spring.io'
    spring-site-blog: '{spring-site}/blog'
    spring-site-cve: "{spring-site}/security"
    spring-site-guides: '{spring-site}/guides'
    spring-site-projects: '{spring-site}/projects'
    spring-site-tools: "{spring-site}/tools"
    spring-org: 'spring-projects'
    spring-github-org: "https://github.com/{spring-org}"
    spring-framework-github: "https://github.com/{spring-org}/spring-framework"
    spring-framework-code: '{spring-framework-github}/tree/main'
    spring-framework-issues: '{spring-framework-github}/issues'
    spring-framework-wiki: '{spring-framework-github}/wiki'
    # Docs
    docs-site: 'https://docs.spring.io'
    spring-framework-docs-root: '{docs-site}/spring-framework/docs'
    spring-framework-api: '{spring-framework-docs-root}/{spring-version}/javadoc-api/org/springframework'
    spring-framework-api-kdoc: '{spring-framework-docs-root}/{spring-version}/kdoc-api'
    spring-framework-reference: '{spring-framework-docs-root}/{spring-version}/reference'
    #
    # Other Spring portfolio projects
    spring-boot-docs: '{docs-site}/spring-boot/docs/current/reference/html'
    spring-boot-issues: '{spring-github-org}/spring-boot/issues'
    # TODO add more projects / links or just build up on {docs-site}?
    # TODO rename the below using new conventions
    docs-spring-gemfire: '{docs-site}/spring-gemfire/docs/current/reference'
    docs-spring-security: '{docs-site}/spring-security/reference'
    docs-spring-session: '{docs-site}/spring-session/reference'
    #
    # External projects URLs and related attributes
    aspectj-site: 'https://www.eclipse.org/aspectj'
    aspectj-docs: "{aspectj-site}/doc/released"
    aspectj-api: "{aspectj-docs}/runtime-api"
    aspectj-docs-devguide: "{aspectj-docs}/devguide"
    aspectj-docs-progguide: "{aspectj-docs}/progguide"
    assertj-docs: 'https://assertj.github.io/doc'
    baeldung-blog: 'https://www.baeldung.com'
    bean-validation-site: 'https://beanvalidation.org'
    graalvm-docs: 'https://www.graalvm.org/22.3/reference-manual'
    hibernate-validator-site: 'https://hibernate.org/validator/'
    jackson-docs: 'https://fasterxml.github.io'
    jackson-github-org: 'https://github.com/FasterXML'
    java-api: 'https://docs.oracle.com/en/java/javase/17/docs/api'
    java-tutorial: 'https://docs.oracle.com/javase/tutorial'
    JSR: 'https://www.jcp.org/en/jsr/detail?id='
    kotlin-site: 'https://kotlinlang.org'
    kotlin-docs: '{kotlin-site}/docs'
    kotlin-api: '{kotlin-site}/api/latest'
    kotlin-coroutines-api: '{kotlin-site}/api/kotlinx.coroutines'
    kotlin-github-org: 'https://github.com/Kotlin'
    kotlin-issues: 'https://youtrack.jetbrains.com/issue'
    reactive-streams-site: 'https://www.reactive-streams.org'
    reactive-streams-spec: 'https://github.com/reactive-streams/reactive-streams-jvm/blob/master/README.md#specification'
    reactor-github-org: 'https://github.com/reactor'
    reactor-site: 'https://projectreactor.io'
    rsocket-github-org: 'https://github.com/rsocket'
    rsocket-java: '{rsocket-github-org}/rsocket-java'
    rsocket-java-code: '{rsocket-java}/tree/master/'
    rsocket-protocol-extensions: '{rsocket-github-org}/rsocket/tree/master/Extensions'
    rsocket-site: 'https://rsocket.io'
    rfc-site: 'https://datatracker.ietf.org/doc/html'
    sockjs-client: 'https://github.com/sockjs/sockjs-client'
    sockjs-protocol: 'https://github.com/sockjs/sockjs-protocol'
    sockjs-protocol-site: "https://sockjs.github.io/sockjs-protocol"
    stackoverflow-site: 'https://stackoverflow.com'
    stackoverflow-questions: '{stackoverflow-site}/questions'
    stackoverflow-spring-tag: "{stackoverflow-questions}/tagged/spring"
    stackoverflow-spring-kotlin-tags: "{stackoverflow-spring-tag}+kotlin"
    testcontainers-site: 'https://www.testcontainers.org'